package array

type handle[T any] func(i int, v T) bool

// ForeachString 循环字符串数组
func ForeachString(arr []string, f handle[string]) {
	Foreach(arr, f)
}

// Foreach 循环数组
// if ok := f(i,v); !ok {break}
func Foreach[T any](arr []T, f handle[T]) {
	foreach(arr, f)
}

// foreach 循环数组
// if ok := f(i,v); !ok {break}
func foreach[T any](arr []T, f handle[T]) {
	for i := 0; i < len(arr); i++ {
		if ok := f(i, arr[i]); !ok {
			break
		}
	}
}
